280B - Maximum Xor Secondary - CodeForces Solution


data structures implementation two pointers *1800

Please click on ads to support us..

Python Code:

n = int(input().strip())
s = list(map(int, input().strip().split()))
stack = []
max_lucky = 0
for i in range(n):
    while stack and stack[-1] < s[i]:
        max_lucky = max(max_lucky, stack[-1] ^ s[i])
        stack.pop()
    if stack:
        max_lucky = max(max_lucky, stack[-1] ^ s[i])
    stack.append(s[i])
print(max_lucky)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
int n;
int a[1000010];
stack<int> st;
int ans=-1;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++)
    {
        while(st.size()) {
            ans=max(ans,a[i]^st.top());
            if(a[i]<=st.top())break;
            st.pop();
        }
        st.push(a[i]);
        // if(st.size()>=2)
        // {
        //     int t1=st.top();
        //     st.pop();
        //     int t2=st.top();
        //     ans=max(ans,t1^t2);
        //     cout<<ans<<" ";
        //     st.push(t1);
        // }
    }
    cout<<ans<<endl;
    return 0;
}
		 	    	     	 				 	    	   	


Comments

Submit
0 Comments
More Questions

302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd
746A - Compote
318A - Even Odds
550B - Preparing Olympiad
939B - Hamster Farm
732A - Buy a Shovel
1220C - Substring Game in the Lesson
452A - Eevee
1647B - Madoka and the Elegant Gift
1408A - Circle Coloring
766B - Mahmoud and a Triangle
1618C - Paint the Array
469A - I Wanna Be the Guy
1294A - Collecting Coins
1227A - Math Problem
349A - Cinema Line
47A - Triangular numbers
1516B - AGAGA XOOORRR
1515A - Phoenix and Gold
1515B - Phoenix and Puzzle
155A - I_love_username